package com.demo.search.engine.type;

import com.demo.search.model.FieldModel;

/**
 * 1.将不同类型的对象转换成指定字符串
 * 2.将字符串转换成不同类型的对象
 */
public interface TypeHandler {

	/**
	 * 是否支持该类型转换
	 * @param type 目标类型
	 * @return boolean true:支持
	 */
	boolean support(Class<?> type);

	/**
	 * 生成索引参数
	 * @param target 目标对象
	 * @param format 格式化
	 * @return String 生成字符串
	 */
	String buildParameter(java.lang.reflect.Field field, Object target, String format);

	/**
	 * 将索引结果的字符串，转换成指定对象
	 * @param value 结果字符串
	 * @param model 字段模型
	 * @return 转换成相应对象
	 */
	Object getResult(String value, FieldModel model);
}